import { defineStore } from "pinia";

//1.定义容器
//1.参数1：容器id，必须唯一,将来pinia会把所有的容器挂载到根容器
//2.参数2:选项对象
//返回值:一个函数，调用得到实例
export const useMainStore = defineStore('main', {

  // 类似于组件的data,用来存储全局状态
  //1.必须是函数:这样是为了在服务端渲染的时候避免交叉请求导致的数据污染
  //2.必须是箭头函数,这是为了更好的ts类型推导
  state: () => {
    return {
      menus: [],//动态获取的菜单栏数据
      activrouter: '',//当前路由
      activrmenus: [],//以当前路由为准的当前菜单分支
      toptitle: '',//头部变化的文字
      activeName: '',//tabs默认激活
      leftmenus: [],//左侧菜单栏
      activerindex: '',//菜单栏默认激活
      breadcrumb: [],//面包屑
      headertabs: [],//头部的tabs
      activetab: "",//头部tabs默认激活

      cacheroute: [],//缓存路由


    }
  },
  //类似于组件的conmputede,用来封装计算属性，有缓存的功能
  getters: {

  },

  //类似于组件的methods,封装业务逻辑，修改state
  actions: {}

})
//2.使用容器中的state

//3.修改state

//4.容器中的action的使用